package niuke;

import java.util.Scanner;

/**
 * 写出一个程序，接受一个正浮点数值，输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整；小于 0.5 ，则向下取整。
 * <p>
 * 数据范围：保证输入的数字在 32 位浮点数范围内
 * 输入描述：
 * 输入一个正浮点数值
 * <p>
 * 输出描述：
 * 输出该数值的近似整数值
 * <p>
 * 示例1
 * 输入：
 * 5.5
 * <p>
 * 输出：
 * 6
 * <p>
 * 说明：
 * 0.5>=0.5，所以5.5需要向上取整为6
 * <p>
 * 示例2
 * 输入：
 * 2.499
 * <p>
 * 输出：
 * 2
 * <p>
 * 说明：
 * 0.499<0.5，2.499向下取整为2
 *
 * @ClassName HJ07
 * @Description
 * @Author xiaoyang
 * @Date 2023/03/30/15:11
 */
public class HJ07 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String response = in.nextLine();
            String solution = solution(response);
            System.out.println(solution);
        }
    }

    private static String solution(String target) {
        // 包含 . 的时候才会取整的情况,
        // 不包含则 直接返回
        if (! target.contains(".")) {
            return target;
        }
        String[] strs = target.split("\\.");
        String i = strs[0];
        char c = strs[1].charAt(0);
        if (c >= '5') {
            Integer integer = Integer.parseInt(i) + 1;
            i = String.valueOf(integer);
        }

        return i;
    }

    private static String solutionMath(String target) {
        // 包含 . 的时候才会取整的情况,
        // 不包含则 直接返回
        if (! target.contains(".")) {
            return target;
        }
        String[] strs = target.split("\\.");
        String i = strs[0];
        char c = strs[1].charAt(0);
        if (c >= '5') {
            double ceil = Math.ceil(Double.parseDouble(target));
            i = String.valueOf(ceil);
        }

        return i;
    }


}
